using System;
using System.Collections;
using System.Text;
using Nullables;

namespace LibrErian.Model
{
	public class Book
	{
		private int id;
		private string title;
		private string subtitle;
		private int noOfPages;
		private string isbn;
		private NullableDateTime publicationDate;
		private string summary;
        private IList authors;
        private Guid imageId;
        private string imageExtension;
        private IList genres;
        private IList categories;
        private Format format;
        private Library library;

		public int Id
		{
			get { return id; }
			set { id = value; }
		}

		public string Title
		{
			get { return title; }
			set { title = value; }
		}

		public string Subtitle
		{
			get { return subtitle; }
			set { subtitle = value; }
		}

		public int NoOfPages
		{
			get { return noOfPages; }
			set { noOfPages = value; }
		}

		public string Isbn
		{
			get { return isbn; }
			set { isbn = value; }
		}

		public NullableDateTime PublicationDate
		{
			get { return publicationDate; }
			set { publicationDate = value; }
		}

		public string Summary
		{
			get { return summary; }
			set { summary = value; }
		}

		public IList Authors
		{
			get { return authors; }
			set { authors = value; }
		}

        public IList Genres
        {
            get { return genres; }
            set { genres = value; }
        }

        public IList Categories
        {
            get { return categories; }
            set { categories = value; }
        }


        public Guid ImageId
        {
            get { return imageId; }
            set { imageId = value; }
        }

        public string ImageExtension
        {
            get { return imageExtension; }
            set { imageExtension = value; }
        }

        public Format Format
        {
            get { return format; }
            set { format = value; }
        }

        public Library Library
        {
            get { return library; }
            set { library = value; }
        }
	
		public Book()
		{
			this.id = -1;
			this.publicationDate = DateTime.Now;
            this.authors = new ArrayList();
            this.genres = new ArrayList();
            this.categories = new ArrayList();
		}
	}
}
